#ifndef MAINGRID_H
#define MAINGRID_H

#include "component.h"
#include <QVector>

class MainGrid : public Component
{
private:
    QVector<double> electricityPrice; // 电价曲线
    double maxImportPower;            // 最大输入功率
    double maxExportPower;            // 最大输出功率
    double gridFrequency;             // 电网频率

public:
    // 构造函数
    MainGrid(const QString& name,
             double maxImport = 1000.0,
             double maxExport = 1000.0);

    // 析构函数
    ~MainGrid();

    // 设置电价曲线
    void setPriceProfile(const QVector<double>& prices);

    // 获取电价曲线
    QVector<double> getPriceProfile() const;

    // 获取指定时间的电价
    double getPriceAtTime(int timeIndex) const;

    // 设置最大输入功率
    void setMaxImportPower(double power);

    // 获取最大输入功率
    double getMaxImportPower() const;

    // 设置最大输出功率
    void setMaxExportPower(double power);

    // 获取最大输出功率
    double getMaxExportPower() const;

    // 设置电网频率
    void setGridFrequency(double frequency);

    // 获取电网频率
    double getGridFrequency() const;

    // 计算当前成本（基于功率和电价）
    double calculateCost(int timeIndex) const;

    // 重写基类的设置功率方法，添加功率限制
    void setPower(double newPower) override;

    // 重写基类的获取状态方法
    QString getStatus() const override;
};

#endif // MAINGRID_H
